Object Inheritance Without Classes
نویسندگان
چکیده
Which comes first: the object or the class? Language designers enjoy the conceptual simplicity of object-based languages (such as Emerald or Self) while many programmers prefer the pragmatic utility of classical inheritance (as in Simula and Java). Programmers in object-based languages have a tendency to build libraries to support traditional inheritance, and language implementations are often contorted to the same end. In this paper, we revisit the relationship between classes and objects. We model various kinds of inheritance in the context of an objectoriented language whose objects are not defined by classes, and explain why class inheritance and initialisation cannot be easily modelled purely by delegation. 1998 ACM Subject Classification D.3.3 Classes and objects
منابع مشابه
Object Inheritance Without Classes (Artifact)
This artifact is a PLT Redex implementation of the operational semantics presented in Object Inheritance Without Classes. It defines the core syntax and runtime semantics of the Graceless language, and then extends it in multiple different ways to produce the various implementations of object inheritance, including single and multiple inheritance. The implementation makes the semantics runnable...
متن کاملTypes for Non-Standard Class Operations
Bracha and Cook illustrate how existing object-oriented languages with only single inheritance, such as Smalltalk and Beta, cannot describe extensions to a family of classes without duplicating either the extension or the base classes. To this end, they examine the idea of mixins from the Common Lisp Object System (CLOS) and show how to adapt the idea of mixins to other object-oriented systems ...
متن کاملOrganizing Programs Without Classes
All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model—dividing types into prototypes and traits—supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object ...
متن کاملOn the Relationship Between Classes, Objects, and Data Abstraction
While most object-oriented programming is done in classbased languages, the trend in theoretical study has been to develop formal systems that are object-based, without classes and often without explicit inheritance mechanisms. This paper studies the correspondence between object primitives and class constructs of the form found in C++, Eiffel, and Java. The main qualitative insight is that suc...
متن کاملInheritance-Based Subtyping
Classes play a dual rôle in mainstream statically-typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this linkage as a mistake and has focused on subtyping relationships determined by the structure of object types, without regard to their underlying impl...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016